package com.senmiao.ssm.service;

import com.senmiao.ssm.entity.Employee;

import java.util.List;

public interface DoLogService {
    /**
     * 登录日志记录
     * @param account
     * @param ipAddr
     * @param loginFailed
     */
    void saveLoginLog(String account, String ipAddr, boolean loginFailed);

    /**
     * 登出日志记录
     * @param adminId
     * @param ipAddr
     */
    void saveLogoutLog(Integer adminId, String ipAddr);

    /**
     * 删除操作日志记录
     * @param employeeIds
     * @param tableName
     * @param adminId
     * @param ipAddr
     */
    void saveDeleteLog(List<Integer> employeeIds, String tableName, Integer adminId, String ipAddr);

    /**
     * 根据id获取员工信息
     * @param recordId
     * @return
     */
    Employee getEmployeeById(Integer recordId);

    /**
     * 更新操作日志记录，（不包括中间表记录的更新操作）
     * @param recordId
     * @param adminId
     * @param tableName
     * @param pre
     * @param after
     */
    void updateLog(Integer recordId, Integer adminId, String tableName, Object pre, Object after);

    /**
     * 获取角色的所有权限的id
     * @param roleId
     * @return
     */
    List<Integer> getPermissionIdsOfRole(Integer roleId);

    /**
     * 对角色授予权限的日志记录
     * @param adminId
     * @param permissionsIdsOfRolePre
     * @param permissionsIdsOfRoleAfter
     */
    void authorizeLog(Integer adminId,Integer roleId, List<Integer> permissionsIdsOfRolePre, List<Integer> permissionsIdsOfRoleAfter);

    void insertLog(Integer adminId, String tableName);

    void queryLog(Integer adminId, String tableName);

    Integer getRoleIdOfAdmin(Integer adminIdUpdate);

    void changeAdminRoleLog(Integer adminId, Integer adminIdUpdate, Integer roleIdPre, Integer roleIdAfter);
}